package cn.francis.common.annoation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * @author 张俊辉
 */

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
@Documented
public @interface Limit {
    /**
     * 资源key,唯一
     * 作用：不同接口，不同的流量控制
     */
    String key() default "";

    /**
     * 最多的访问次数
     */
    double permitsPerSecond();

    /**
     * 获取令牌最大等待时间
     */
    long timeout();

    /**
     * 获取令牌最大等待时间，单位
     */
    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

    /**
     * 令牌获取不到，提示语
     */
    String msg() default "系统繁忙，请稍后再试";
}
